package main

import "fmt"

func main() {
	var arr [5]int
	arr2 := [3]int{1, 3, 5}          // 需要初值
	arr3 := [...]int{2, 4, 6, 8, 10} // 编译器数
	//arr4 := []int{1,2,3}
	var grid [4][5]int // 二维数组

	fmt.Println(arr, arr2, arr3, grid)
	//traverse(arr4)
	//printArray(arr)
	printArray(arr3)

	pointArray(&arr3) // 改变数组值
	fmt.Println(arr3)
}

// 只能传入未指定数组个数的数组
func traverse(arr []int) {
	for i := 0; i < len(arr); i++ {
		fmt.Print(arr[i])
	}
}

// 传入的是数组
func printArray(arr [5]int) {
	arr[0] = 100
	for i := range arr { // i 是索引
		fmt.Print(arr[i])
	}
	fmt.Println()
	for i, v := range arr {
		fmt.Println(i, v)
	}

	for _, v := range arr {
		fmt.Println(v)
	}
}

// 指向数组的指针
func pointArray(arr *[5]int) {
	for i := range arr {
		arr[i] += 1 // 不能直接v+1
	}
}
